Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

АФІННІ шифри

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ – 44

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка”  Звіт до лабораторної роботи №2 З курсу: “Методи і засоби криптологічних перетворень” На тему: „АФІННІ шифри” Львів – 2008 Мета: дослідити афінні шифри першого та вищих порядків.. Теоретичні відомості 1. Шифри простої заміни. n-символьний алфавіт утотожнюємо з кільцем Zn. А саме, кожна буква замінюється своїм номером у алфавіті, прийому нумерація починається з нуля. Наприклад, латинська абетка утотожнюється із Z26, а українська із Z33. Літера а української абетки трактується як 0, літера б як 1, в як 2 і т.д. Тепер до букв відкритого тексту ми можемо вільно застосовувати операції додавання та множення за відповідним модулем. Шифр зсуву. Ключ: s таке, що 0 < s < п. Шифрування. У повідомленні кожна буква х заміщується буквою Е(х) = (х + s) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (х' + s') mod п, де s' = п - s. Величину зворотнього зсуву s' будемо називати дешифруючим ключем. Лінійний шифр. Ключ: а таке, що 0 < а < п і НСД (а, п) = 1. Шифрування. У повідомленні кожна буква х заміщується буквою Е{х) = (ах) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (a'x') mod п, де а' — a-1 mod n — дешифруючий ключ. Узагальненням і шифру зсуву, і лінійного шифру є Афінний шифр. Ключ: a, s такі, що 0 < s < п, 0 < а <п і НСД (а, п) = 1. Шифрування. У повідомленні кожна буква х заміщується буквою Е(х) = (ах + s) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (a'x'+ s’) mod n, де пара а’ – a-1 mod n, s’= (—a’s) mod n є дешифруючим ключем. Як і кожен шифр простої заміни, афінний шифр піддається частотному аналізові. 2. Афінні шифри вищих порядків. Подумаємо, як можна розширити монограмні шифри попереднього пункту так, щоб вони оперували з k-грамами для довільного k > 1. Спочатку введемо операцію додавання в Znk. Сумою векторів X=(x1,. . .,хk) і s=(s1,… ,sk) з Znk є вектор X + S = ((x1 + s1) mod n,…, (хk + sk) mod n). Zkn з операцією додавання є групою. Вектор —S = (n — s1,…, n — sk) є оберненим до вектора S — (s1,…,sk). Шифр зсуву k-го порядку. Ключ: S є Zkn. Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х) = X + S. Дешифрування. Кожна k-грама X' криптотексту заміщується k-грамою D(X') = X' + 5’, де S' = —S є дешифруючим ключем. Лінійний шифр k-го порядку. Ключ: А Є GLk(Zn). Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х)= АХ. Дешифрування. Кожна k-грама Х’ криптотексту заміщується к-грамою D(X') = A'X', де А’ = А-1 — дешифруючий ключ. Афінний шифр k-го порядку. Ключ: А Є GLk{Zn} і S Є Znk. Шифрування. Повідомлення розбивається на k-грами. Кожна k-грама X заміщується k-грамою Е(Х) = АХ + S. Дешифрування. Кожна k-грама X' криптотексту заміщується k-грамою D{X’} = А’X’ + S’, де А’ = А-1 і S’ = -A’S — дешифруючий ключ. Шифр зсуву з s=54 Ключ: s=54 mod 26=2. Шифрування. У повідомленні кожна буква х заміщується буквою Е(х)= (х + s) mod n. Дешифрування. У криптотексті кожна буква х' заміщується буквою D(x') = (х' + s') mod п, де s' = п – s=26-2=24. Відкритий текст Iwanttogotoschool  Зашифровани текст Kycpvvqiqvquejqqn  Розшифровани текст Iwanttogotoschool   Блок схема алгоритму   Программа реалізації шифру зсуву #include<stdio.h> int main() { char c,c2[255]; int i,s=76,s1,k=0; printf("Enter text: "); s1=26-s; while (s1>26) s1-=26; while (s1<0) s1+=26; while (c!='\n') { scanf("%c",&c); i=c; if ((i>=65) && (i<=90)){ i+=s; while (i>90) i-=26; } if ((i>=97) && (i<=122)){ i+=s; while (i>122) i-=26; } c2[k]=i; k++; } printf("S=%d S'=%d\nZawufrovanuj text: ",s,s1); k=0; while(c2[k]!='\n') { printf("%c",c2[k]); i=c2[k]; if ((i>=65) && (i<=90)){ i+=s1; while (i>90) i-=26; } if ((i>=97) && (i<=122)){ i+=s1; while (i>122) i-=26; } c2[k]=i; k++; } printf("\nRozwufrovanuj text: "); ...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини